home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mac Power 1997 December
/
MACPOWER-1997-12.ISO.7z
/
MACPOWER-1997-12.ISO
/
AMUG
/
PROGRAMMING
/
Raven 1.2 Examples.sit
/
Raven 1.2 Examples
/
Quill
/
Source
/
GridSizeDialog.cpp
< prev
next >
Wrap
Text File
|
1997-08-26
|
3KB
|
138 lines
/*
* File: GridSizeDialog.cpp
* Function: A dialog that allows the user to change the view container's grid size.
* Written by: Jesse Jones
*
* Copyright ゥ 1997 Jesse Jones.
* For conditions of distribution and use, see copyright notice in ZTypes.h
*
* Change History (most recent first):
*
* <-> 2/03/97 JDJ Created
*/
#include "GridSizeDialog.h"
#include <ZApplication.h>
#include <ZDialogHandler.h>
#include <ZTextBox.h>
#include "DialogBoxProxy.h"
#include "WindowProxy.h"
// ===================================================================================
// class CGridSizeDialog
// ===================================================================================
static TReanimatorRegister<CGridSizeDialog> sGridSizeRegistrar;
//---------------------------------------------------------------
//
// CGridSizeDialog::~CGridSizeDialog
//
//---------------------------------------------------------------
CGridSizeDialog::~CGridSizeDialog()
{
}
//---------------------------------------------------------------
//
// CGridSizeDialog::CGridSizeDialog
//
//---------------------------------------------------------------
CGridSizeDialog::CGridSizeDialog()
{
}
//---------------------------------------------------------------
//
// CGridSizeDialog::Create (MReanimatable*) [static]
//
//---------------------------------------------------------------
MReanimatable* CGridSizeDialog::Create(MReanimatable* parent)
{
ASSERT(parent == nil);
if (CWindowProxy::msUseProxy)
return CDialogBoxProxy::Create(parent);
else
return new CGridSizeDialog;
}
//---------------------------------------------------------------
//
// CGridSizeDialog::Pose
//
//---------------------------------------------------------------
bool CGridSizeDialog::Pose(TSize* size)
{
ASSERT(size != nil);
CGridSizeDialog* dialog = dynamic_cast<CGridSizeDialog*>(TDialogBox::Create(205, TApplication::Instance()));
dialog->SetData(*size);
string message = kNothingMessage;
{
TDialogHandler handler(dialog);
dialog->Show();
while (message != kCancelMessage && message != kOKMessage) {
message = handler.ProcessNextEvent();
if (message == kOKMessage && !dialog->Validate())
message = kNothingMessage;
}
}
if (message == kOKMessage)
*size = dialog->GetData();
return message == kOKMessage;
}
//---------------------------------------------------------------
//
// CGridSizeDialog::SetData
//
//---------------------------------------------------------------
void CGridSizeDialog::SetData(const TSize& size)
{
TTextBox* textbox = nil;
textbox = dynamic_cast<TTextBox*>(this->FindSubPane("Width"));
textbox->SetValue(size.width);
textbox->SelectAll();
textbox = dynamic_cast<TTextBox*>(this->FindSubPane("Height"));
textbox->SetValue(size.height);
}
//---------------------------------------------------------------
//
// CGridSizeDialog::GetData
//
//---------------------------------------------------------------
TSize CGridSizeDialog::GetData() const
{
TSize size;
TTextBox* textbox = nil;
textbox = dynamic_cast<TTextBox*>(this->FindSubPane("Width"));
size.width = textbox->GetValue();
textbox = dynamic_cast<TTextBox*>(this->FindSubPane("Height"));
size.height = textbox->GetValue();
return size;
}